/**
 * 文件名称: SessionFactory.java
 * Copyright © 2015-3015, 杭州泊享网络科技有限公司
 * 
 * @author Liu Tao
 * @create 2013-8-9
 */
package com.pshare.session;


/**
 * 会话管理工厂接口。
 */
public interface SessionFactory {
	
    /**
     * <p>
     * 根据会话追踪编号返回会话对象。
     * </p>
     *
     * @param trackable
     * @return Session
     */
    Session getSession(Trackable trackable);
    
    Session newSession();
    
    /**
     * 根据会话读取会话对象，有就有，没有就没有
     * @param trackable
     * @return Session
     */
    Session readSession(Trackable trackable);
    
    /**
     * <p>
     * 保存会话。
     * </p>
     *
     * @param session
     */
    void put(Session session);
    
    /**
     * <p>
     * 移除一个会话。
     * </p>
     *
     * @param trackable
     */
    void remove(Trackable trackable);
    
    void putSessionId(String key, String sessionId);
    
    String getSessionId(String key);
    
    void removeSessionId(final String key);

    /**
     * <p>
     * 清理所有缓存。
     * </p>
     *
     */
    void flush() ;
}
